
// const { forEach } = require("core-js/fn/array")

const dataSource = [
  { name: '总裁办', id: 1, pid: '' },
  { name: '财务部', id: 2, pid: '' },
  { name: '税务核算', id: 3, pid: 2 }
]

// const dataTree = [
//   { name: '总裁办', id: 1, pid: '' },
//   {
//     name: '财务部',
//     id: 2, pid: '',
//     children: [
//       { name: '税务核算', id: 3, pid: 2 }
//     ]
//   }
// ]

const treeData = tranListToTreeData(dataSource, '')
console.log(treeData)
// 改造有递归的版本
function tranListToTreeData(list, pid) {
  const res = []
  list.forEach(item => {
    if (item.pid === pid) {
      // 多了递归部分
      const children = tranListToTreeData(list, item.id)
      if (children.length) {
        item.children = children
      }
      // 原本没找到递归时, 放在数组中即可
      res.push(item)
    }
  })
  return res
}
// 演示没有递归之前的逻辑
// function tranListToTreeData(list, pid) {
//   const res = []
//   list.forEach(item => {
//     if (item.pid === pid) {
//       res.push(item)
//     }
//   })
//   return res
// }
